約 5,039,081 件
https://w.atwiki.jp/tmogmni/pages/21.html
数値フォーマット 現在日付からの加算と減算 psqlでファイルを読み込んでクエリ実行 postgresql8.1.0windows版インストール データのバックアップ 簡単にテーブル作成 linuxにポスグレをインストール インポートエクスポート 関数 2つのテーブルを比較して重複しているもの以外を抽出 数値フォーマット 0で埋める場合は以下 select to_char(12345, 00000000 ); to_char ----------- 00012345 現在日付からの加算と減算 以下の書式で書けた。便利。 ■現在時刻から1年2ヶ月3日4時間5分6秒後を取得 SELECT now() ,now() + 1year 2month 3day 4hour 5minute 6second ; now | ?column? -------------------------------+------------------------------- 2006-01-10 16 20 42.203232+09 | 2007-03-13 20 25 48.203232+09 (1 row) ■現在時刻から1年2ヶ月3日4時間5分6秒前 を取得 SELECT now() ,now() + 1year ago 2month ago 3day ago 4hour ago 5minute ago 6second ago ; now | ?column? -------------------------------+------------------------------- 2006-01-10 16 21 31.433893+09 | 2004-11-07 12 16 25.433893+09 (1 row) psqlでファイルを読み込んでクエリ実行 psqlが実行できるユーザになる # su postgres ユーザのカレントディレクトリにてファイル作成 # vi /home/postgres/select.sql select id,name from member; 以下で実行 # psql DB名 /home/postgres/select.sql 実行結果をファイル出力したい場合は以下 # psql DB名 /home/postgres/select.sql 出力ファイル名 postgresql8.1.0windows版インストール 最初は8.1.1をインストールしようとしたが日本語版がまだでていなかったようなので8.1.0で妥協。http //www.postgresql.org/ftp/binary/v8.1.0/win32/ からpostgresql-8.1.0-1-ja.zipをダウンロード。解凍して作成されたディレクトリ内の postgresql-8.1-ja.msi を実行。以下インストール時の様子。画像が切れてるな... データのバックアップ データベース全体をバックアップしてdb_backup.outというファイル名で出力する場合。 # su - postgres $ /usr/local/pgsql/bin/pg_dumpall -o /usr/local/pgsql/data/backup/db_backup.out (以下1行で書く) cronとかに登録しておけば自動バックアップできる。例えば毎日午前5時にバックアップする場合。 # crontab -e (以下1行で書く) 0 5 * * * su - postgres -c /usr/local/pgsql/bin/pg_dumpall -o /usr/local/pgsql/data/backup/db_backup.out 簡単にテーブル作成 psqlでテーブルを作成する場合、ひとつひとつ手入力でテーブル作成するのは面倒。その場合は、SQL文を記述したファイルを用意してバッチで一発作成。 ファイル格納ディレクトリ作成。 # mkdir /home/hoge/batch ファイル作成。例えばhoge1とhoge2というテーブルを二個作成する場合は以下。 # vi /home/hoge/batch/create.sql -- -- hoge1 -- CREATE TABLE hoge1 ( id int4 NOT NULL DEFAULT 0 ,name varchar(255) ,PRIMARY KEY (id) ); -- -- hoge2 -- CREATE TABLE hoge2 ( id int4 NOT NULL DEFAULT 0 ,email varchar(255) ,PRIMARY KEY (id) ); 以下コマンドでテーブル作成される。 # su - postgres $ psql DB名 /home/hoge/batch/create.sql linuxにポスグレをインストール ソースファイルを以下からダウンロード。 ftp //ftp.jp.postgresql.org/source/v8.0.2/postgresql-8.0.2.tar.gz ポスグレ用ユーザを追加 # adduser postgres ダウンロードしてきたファイルをwinscpなどで/usr/local/srcに移動して、インストール開始。 解凍 # cd /usr/local/src # tar xfvz postgresql-8.0.2.tar.gz # rm postgresql-8.0.2.tar.gz ←要らないので削除 インストール # cd /usr/local/src/postgresql-8.0.2 # ./configure # gmake # gmake install データ格納ディレクトリ作成 # mkdir /usr/local/pgsql/data ポスグレユーザに権限を与える # chown postgres /usr/local/pgsql/data DBの初期化 # su - postgres $ /usr/local/pgsql/bin/initdb --no-locale -E EUC_JP -D /usr/local/pgsql/data (1行で書く) 起動 # /usr/local/pgsql/bin/postmaster \ -D /usr/local/pgsql/data logfile 2 1 自動起動設定は /etc/rc.d/rc.local の最初に、以下の記述を追加。(1行で書く) su - postgres -c "/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data -l /usr/local/pgsql/data/logfile -o \"-i -p 5432\"" インポートエクスポート CSVデータをテーブルにインポートするには COPY テーブル名 FROM CSVファイルの絶対パス CSV; 例:hogeテーブルにhoge.csvをインポート COPY hoge FROM /home/postgres/data/hoge.csv CSV; テーブルをCSVデータとしてエクスポートするには COPY テーブル名 TO CSVファイルの絶対パス CSV; COPY テーブル名(カラム名1, カラム名2, ...) TO CSVファイルの絶対パス CSV; 例1:hogeテーブルをhoge.csvにエクスポート(全カラム) COPY hoge TO /home/postgres/data/hoge.csv CSV; 例2:hogeテーブルをhoge.csvにエクスポート(idとnameカラムのみ) COPY hoge(id,name) TO /home/postgres/data/hoge.csv CSV; 注意事項 インポート先テーブルとインポート対象CSVデータのカラム内容は同じでなければならない。 CSVデータに改行のみの行が存在する場合インポートに失敗する。改行のみの行は削除しておく必要あり。 インポート時に何度もエラーを出した場合は最後にバキューム処理を忘れずに。(メモリを喰うため) CSVファイルがSJISの場合、インポート時にエラーが出るので以下のようにクライアントエンコーディングをセットしてからインポートを行うこと。 SET client_encoding TO SJIS ; COPY テーブル名 FROM CSVファイルの絶対パス CSV; 関数 時間型を文字列型に変換 select to_char(now(), yyyymmdd ); 結果 20050829 2つのテーブルを比較して重複しているもの以外を抽出 テーブルA +----+------+ | id | name | +----+------+ | 1 | aa | | 2 | bb | | 3 | cc | | 4 | dd | | 5 | ee | | 6 | ff | +----+------+ テーブルB +----+------+ | id | name | +----+------+ | 1 | aa | | 2 | bb | +----+------+ テーブルAにおいて、テーブルBに含まれるname以外の結果(ここではcc、dd、ee、ff)を取得したい場合は以下。 SELECT name FROM A WHERE name NOT IN ( SELECT name FROM B );
https://w.atwiki.jp/kuronekosoft/pages/16.html
黒猫 SQL Studio で PostgreSQL に接続するには、ODBCを使用します。 PostgreSQL に付属の OLE DB Provider は実装が不十分で使用できません。 黒猫 SQL Studio を起動し、次の手順に従って接続してみましょう。 [データベース]-[ODBCアドミニストレータ]をクリックします。 [ユーザーDSN]タブの[追加]ボタンをクリックします。 ドライバの一覧から[PostgreSQL Unicode]を選択します。 [完了]ボタンをクリックします。 [データソース名]に任意の名前を入力します。 [サーバー名]に接続先のコンピュータ名(ホスト名)を入力します。 [データベース名]に接続するデータベース名を入力します。 [ユーザー名]、[パスワード]を入力します。 [テスト]ボタンをクリックして、接続をテストします。 [保存]ボタンをクリックします。 [ODBCアドミニストレータ]を終了します。 [データベース]-[データベースに接続]をクリックします。 [ODBC接続]タブに切り替えます。 作成したDSNを選択して[接続]ボタンをクリックします。 ご自由にコメントをお書き込みください 「ユーザーDSN」タブというのはどこにあるのでしょうか? -- Help (2007-10-31 17 25 10) 名前 コメント
https://w.atwiki.jp/rinn/pages/34.html
□postgreSQLのバージョン確認 version() 関数を使うことで、postgreSQLのバージョンを確認することができます。 psql コマンドにてログインした後、下記のコマンドを実行してください。 select version(); (実行例) iplocksdb=# select version(); version PostgreSQL 7.2.1 on i686-pc-winnt-msdev, compiled by msdev 6.0 (1 row)
https://w.atwiki.jp/roundcube/pages/8.html
PostgreSQLパッチ RoundCubeは、MySQLが開発のメインとなっているようです。 PostgreSQLで使うには、いわゆるMyGresパッチ作業が必要です(注:MyGresは桑村さんから教えていただきました)。 RoundCubeは、エラーの内容が、logsディレクトリにerrorsファイルへ吐き出される。PHPのログファイルも合わせてデバッグ作業をおこなう。 もちろん、PostgreSQLのログファイルもチェックしよう。 PostgreSQLパッチ(2005.12.24) messageテーブル変更 from/cc/toで、「too long」が出た。text型へ変更 -- -- Table "messages" -- Name messages; Type TABLE; Schema public; Owner postgres -- CREATE TABLE "messages" ( message_id integer DEFAULT nextval( message_ids text) NOT NULL, user_id integer DEFAULT 0 NOT NULL, del integer DEFAULT 0 NOT NULL, cache_key character varying(128) DEFAULT character varying NOT NULL, idx integer DEFAULT 0 NOT NULL, uid integer DEFAULT 0 NOT NULL, subject text DEFAULT , "from" text DEFAULT , "to" text DEFAULT , cc text DEFAULT , date timestamp with time zone NOT NULL, size integer DEFAULT 0 NOT NULL, headers text NOT NULL, body text ); PostgreSQLパッチ情報(2005.10.15) Discussion Forums RoundCube Webmail PostgreSQL PostgreSQLパッチの数々 UNIX_TIMESTAMP()関数の問題 (2005-10-14) PostgreSQLのデフォルトではUNIX_TIMESTAMP関数は無い。 ディスカッションサイトでは2通り紹介されている。 1. PHPソースをパッチ - SELECT vars, ip, UNIX_TIMESTAMP(changed) AS changed + SELECT vars, ip, extract(epoch from changed) AS changed 2. 無ければ、RoundCube用に関数を作る(力技) create or replace function unix_timestamp (timestamp with time zone) time zoneがある場合 returns int as declare date alias for $1; timezero timestamp; offset interval; begin timezero = timestamp 1970-1-1 00 00 at time zone utc ; offset = date-timezero; return ( extract( days from offset)*86400+ extract( hours from offset)*3600+ extract( minutes from offset)*60+ extract( seconds from offset)) int; end; language plpgsql ; エスケープ文字が無いバグ(2005-10-15) - SELECT identity_id, name, email FROM identities WHERE user_id=1 AND del!= 1 ORDER BY "default" DESC, name ASC + SELECT identity_id, name, email FROM identities WHERE user_id=1 AND del!= 1 ORDER BY \"default\" DESC, name ASC パッチは2箇所 program\steps\mail\compose.inc(94) ORDER BY `default` DESC, name ASC", program\steps\settings\func.inc(151) ORDER BY `default` DESC, name ASC", PHP文法ミス roundcubemail/program/include/rcube_db.inc @@ -169,7 +169,7 @@ - $result = $this- db_handle- getOne("SELECT CURRVAL( " .$sequence. " )"); + $result = $this- db_handle- getOne("SELECT CURRVAL( $sequence )");
https://w.atwiki.jp/shabe/pages/14.html
PostgreSQL ローカルにインストールしてDB関連のテストプログラムを自由に実行できるようにしました。 PostgreSQLシーケンス コメント シーケンス 以下でシーケンス作成細かいオプションについてはHELP見てくれ。 CREATE SEQUENCE [seq_name]; 取得 SELECT nextval( seq_name ); 現セッション上で直近に取得した値 SELECT currval( seq_name ); 値設定 SELECT setval( seq_name , num); シーケンス参照 \ds insert文中での使用 nextval はそのままinsert文中に使えます。 INSERT INTO TABLE (ID) VALUES (nextval( seq_name )); serial型 型定義時にserialと定義すると自動で採番してくれるカラムが出来ます。 CREATE TABLE tablename ( colname SERIAL ); は以下を指定することと同じです。 CREATE SEQUENCE tablename_colname_seq; CREATE TABLE tablename ( colname integer DEFAULT nextval( tablename_colname_seq ) NOT NULL ); コメント XMLDBでいけてるやつ知らない? -- nabeshin (2006-04-19 00 04 50) XMLDB使ったことないのよね。使ったことないけどApacheのXindiceくらいしか知らないや。ゴメン。 -- 管理人 (2006-04-19 09 35 40) 名前 コメント
https://w.atwiki.jp/honeybe/pages/41.html
PostgreSQL db_dump dump時にデータダンプをした際リストアできないことがある。SQLダンプをお勧め。(遅いけど) db_restore createuser dropuser alter user
https://w.atwiki.jp/centos-home/pages/35.html
postgresqlインストール postgres(OS)アカウント作成 # /usr/sbin/useradd postgres # /usr/bin/passwd postgres コンパイルに必要なツール gzip/bzip2 GNU make 3.76.1〜 gcc 2.72〜 Flex 2.54〜 Bison 1.875〜 GNU Readlineライブラリ(# yum install readline-devel) GNU zlibライブラリ(# yum install zlib-devel) ソースの展開とインストール(1) 圧縮されたPostgreSQLのソースをpostgresユーザで/usr/local/srcに解凍 /usr/local/src/postgresql-8.4 インストールするディレクトリ /usr/local/pgsql 上のディレクトリの所有権限をpostgresに変更 ソースの展開とインストール(2) postgresユーザになってconfigure $ ./configure 無事makefileができたら $ make all makeのチェックをするために(リグレッションテスト) $ make check 「All 120 tests passed.」と表示されれば完了 ソースの展開とインストール(3) $ make install このページを編集
https://w.atwiki.jp/v-gallo/pages/13.html
PostgreSQL(ぽすとぐれすきゅーえる) オブジェクト関係データベース管理システム UNIX,Linux,Windows,OS/2などで使用可能 32bit/64bit双方で動作可能(32bitは共有バッファサイズが最大2GBに制限) MySQLとの性能差は現状ほぼないと考えていい メタコマンド一覧 落とし穴一覧 実行結果をCSV出力する方法 パフォーマンスチューニング
https://w.atwiki.jp/hanaoka/pages/21.html
DB-いろいろ postgreSQL-いろいろ stored procedure
https://w.atwiki.jp/extranote/pages/52.html
「PostgreSQL」をタグに含むページは1つもありません。